/*************************************************
 *	文件名称：bracket.c
 *	文件说明：测试 括号匹配
 *	程序平台：for linux
 *	文件作者：Jason <jasonsunsoft@163.com>
 *	文件时间：2014年9月6日 17:52
*************************************************/

#include"../3.1/mydata.h"
#include <stdio.h>

inline int isbtacket(char b)
{
	return ('[' == b || ']' == b || '{' == b || '}' || '(' == b || ')' == b);
}

void bracket()
{
	char b;
	SqStack S;
	int cur;

	InitStack(&S);
	printf("Plese enter brackets ended with other char\n");
	scanf("%c", &b);
	while(isbtacket(b))
	{
		switch(b)
		{
		case '(':
			Push(&S, 1);
			break;
		case '[':
			Push(&S, 2);
			break;
		case '{':
			Push(&S, 3);
			break;
		case ')':
			Pop(&S, &cur);
			if (1 == cur)
				printf("( ) is ok\n");
			else
			{
				printf("( ) is error\n");
				return ;
			}
			break;
		case ']':
			Pop(&S, &cur);
			if (2 == cur)
				printf("[ ] is ok\n");
			else
			{
				printf("[ ] is error\n");
				return ;
			}
			break;
		case '}':
			Pop(&S, &cur);
			if (2 == cur)
				printf("{ } is ok\n");
			else
			{
				printf("{ } is error\n");
				return ;
			}
			break;
		default:
			printf("ended \n");
			return ;
		}
		scanf("%c", &b);

	}
}

int main()
{
	bracket();

	return 0;
}
